<?php

/**
 * Szám objektum
 * 
 * Példa:
 * <code>
 * $o->set(123);
 * </code>
 * kimenet: 123
 * 
 */
class XQL_String extends XQL_Item
{
	/**
	 * Az objektum neve. Meg kell egyeznie egy sémának a nevével, amelyre illeszthető.
	 *
	 * @var string
	 */
	protected $objectName = 'string';
	
	/**
	 * Felépíti az osztályhoz tartozó sémát. Implementálása kötelező.
	 *
	 */
	protected function buildSchema()
	{
		$this->objectSchema = new XQL_StringSchema();
	}
	
	/**
	 * Visszatér egy példánnyal ugyanebből az osztályból.
	 *
	 * @return XQL_String
	 */
	public static function create()
	{
		return new XQL_String();
	}
	
	/**
	 * Visszaadja a string objektum értékét. A string quote-olva lesz.
	 *
	 * @param string $value
	 * @return XQL_String Sajátmagával tér vissza
	 */
	public function get()
	{
		$value = parent::get();
		
		$value = $this->connection->pdo->quote((string)$value);
		
		return $value;
	}
	
	
			
	/**
	 * Beállítja a string objektum értékét. A string hexadecimálisan
	 * lesz ábrázolva.
	 *
	 * @param string $value
	 * @return XQL_String Sajátmagával tér vissza
	 */
	public function setHex($value='')
	{
		if (empty($value))
		{
			$value = "''";
		}
		else
		{
			$hex = unpack('H*', $value);
			$value = '0x'.$hex[0];
			unset($hex);
		}
		
		return parent::set($value);
	}
	
}

?>